package com.qfedu.department.dto;

import java.util.ArrayList;
import java.util.List;
import com.qfedu.common.entity.WoPage;
import com.qfedu.common.util.WoUtil;
import com.qfedu.department.po.QfLeave;
import com.qfedu.department.po.Staff;

/**
 * PO实体QfLeave对应的DTO父类.这是自动生成的代码,请不要修改.如要添加属性或者方法,请在其子类DTO中修改.
 * @author cailei
 */
class QfLeaveDto_ {

	/**
	 * 主键id
	 */
	private java.lang.String id;

	/**
	 * 属性applyReason
	 */
	private java.lang.String applyReason;
	/**
	 * 属性applyHours
	 */
	private java.lang.Long applyHours;
	/**
	 * 属性applyType
	 */
	private java.lang.String applyType;
	/**
	 * 属性managerResult
	 */
	private java.lang.Boolean managerResult;
	/**
	 * 属性managerRemark
	 */
	private java.lang.String managerRemark;
	/**
	 * 属性hrResult
	 */
	private java.lang.Boolean hrResult;
	/**
	 * 属性hrRemark
	 */
	private java.lang.String hrRemark;
	/**
	 * 属性ceoResult
	 */
	private java.lang.Boolean ceoResult;
	/**
	 * 属性ceoRemark
	 */
	private java.lang.String ceoRemark;
	/**
	 * 属性status
	 */
	private java.lang.String status;

	
	/**
	 * 对应PO的apply属性,多对一关联实体Staff的主键值
	 */
	private java.lang.String applyId;

	/**
	 * 对应PO的apply属性,多对一关联实体Staff的name属性值
	 */
	private java.lang.String applyName;
	/**
	 * 对应PO的manager属性,多对一关联实体Staff的主键值
	 */
	private java.lang.String managerId;

	/**
	 * 对应PO的manager属性,多对一关联实体Staff的name属性值
	 */
	private java.lang.String managerName;
	/**
	 * 对应PO的hr属性,多对一关联实体Staff的主键值
	 */
	private java.lang.String hrId;

	/**
	 * 对应PO的hr属性,多对一关联实体Staff的name属性值
	 */
	private java.lang.String hrName;
	/**
	 * 对应PO的ceo属性,多对一关联实体Staff的主键值
	 */
	private java.lang.String ceoId;

	/**
	 * 对应PO的ceo属性,多对一关联实体Staff的name属性值
	 */
	private java.lang.String ceoName;

	
	/**
	 * 无参构造函数
	 */
	public QfLeaveDto_() {
	}

	/**
	 * 构造函数,通过po构造dto
	 */
	public QfLeaveDto_(QfLeave po) {
			// 设置主键id
		this.id = po.getId();
				// 设置属性applyReason
		this.applyReason = po.getApplyReason();
			// 设置属性applyHours
		this.applyHours = po.getApplyHours();
			// 设置属性applyType
		this.applyType = po.getApplyType();
			// 设置属性managerResult
		this.managerResult = po.getManagerResult();
			// 设置属性managerRemark
		this.managerRemark = po.getManagerRemark();
			// 设置属性hrResult
		this.hrResult = po.getHrResult();
			// 设置属性hrRemark
		this.hrRemark = po.getHrRemark();
			// 设置属性ceoResult
		this.ceoResult = po.getCeoResult();
			// 设置属性ceoRemark
		this.ceoRemark = po.getCeoRemark();
			// 设置属性status
		this.status = po.getStatus();
		
				// 设置DTO的apply属性值
		if (po.getApply() != null) {
			this.applyId = po.getApply().getId();
			this.applyName = po.getApply().getName();
		}
			// 设置DTO的manager属性值
		if (po.getManager() != null) {
			this.managerId = po.getManager().getId();
			this.managerName = po.getManager().getName();
		}
			// 设置DTO的hr属性值
		if (po.getHr() != null) {
			this.hrId = po.getHr().getId();
			this.hrName = po.getHr().getName();
		}
			// 设置DTO的ceo属性值
		if (po.getCeo() != null) {
			this.ceoId = po.getCeo().getId();
			this.ceoName = po.getCeo().getName();
		}
			}

	
	/**
	 * 主键id的getter方法
	 */
	public java.lang.String getId() {
		return this.id;
	}

	/**
	 * 主键id的setter方法
	 */
	public void setId(java.lang.String id) {
		this.id = id;
	}

	
	/**
	 * 属性applyReason的getter方法
	 */
	public java.lang.String getApplyReason() {
		return this.applyReason;
	}

	/**
	 * 属性applyReason的setter方法
	 */
	public void setApplyReason(java.lang.String applyReason) {
		this.applyReason = applyReason;
	}
	
	/**
	 * 属性applyHours的getter方法
	 */
	public java.lang.Long getApplyHours() {
		return this.applyHours;
	}

	/**
	 * 属性applyHours的setter方法
	 */
	public void setApplyHours(java.lang.Long applyHours) {
		this.applyHours = applyHours;
	}
	
	/**
	 * 属性applyType的getter方法
	 */
	public java.lang.String getApplyType() {
		return this.applyType;
	}

	/**
	 * 属性applyType的setter方法
	 */
	public void setApplyType(java.lang.String applyType) {
		this.applyType = applyType;
	}
	
	/**
	 * 属性managerResult的getter方法
	 */
	public java.lang.Boolean getManagerResult() {
		return this.managerResult;
	}

	/**
	 * 属性managerResult的setter方法
	 */
	public void setManagerResult(java.lang.Boolean managerResult) {
		this.managerResult = managerResult;
	}
	
	/**
	 * 属性managerRemark的getter方法
	 */
	public java.lang.String getManagerRemark() {
		return this.managerRemark;
	}

	/**
	 * 属性managerRemark的setter方法
	 */
	public void setManagerRemark(java.lang.String managerRemark) {
		this.managerRemark = managerRemark;
	}
	
	/**
	 * 属性hrResult的getter方法
	 */
	public java.lang.Boolean getHrResult() {
		return this.hrResult;
	}

	/**
	 * 属性hrResult的setter方法
	 */
	public void setHrResult(java.lang.Boolean hrResult) {
		this.hrResult = hrResult;
	}
	
	/**
	 * 属性hrRemark的getter方法
	 */
	public java.lang.String getHrRemark() {
		return this.hrRemark;
	}

	/**
	 * 属性hrRemark的setter方法
	 */
	public void setHrRemark(java.lang.String hrRemark) {
		this.hrRemark = hrRemark;
	}
	
	/**
	 * 属性ceoResult的getter方法
	 */
	public java.lang.Boolean getCeoResult() {
		return this.ceoResult;
	}

	/**
	 * 属性ceoResult的setter方法
	 */
	public void setCeoResult(java.lang.Boolean ceoResult) {
		this.ceoResult = ceoResult;
	}
	
	/**
	 * 属性ceoRemark的getter方法
	 */
	public java.lang.String getCeoRemark() {
		return this.ceoRemark;
	}

	/**
	 * 属性ceoRemark的setter方法
	 */
	public void setCeoRemark(java.lang.String ceoRemark) {
		this.ceoRemark = ceoRemark;
	}
	
	/**
	 * 属性status的getter方法
	 */
	public java.lang.String getStatus() {
		return this.status;
	}

	/**
	 * 属性status的setter方法
	 */
	public void setStatus(java.lang.String status) {
		this.status = status;
	}

	/**
	 * 属性applyId的getter方法
	 */
	public java.lang.String getApplyId() {
		return applyId;
	}

	/**
	 * 属性applyId的setter方法
	 */
	public void setApplyId(java.lang.String applyId) {
		this.applyId = applyId;
	}

	/**
	 * 属性applyName的getter方法
	 */
	public java.lang.String getApplyName() {
		return applyName;
	}

	/**
	 * 属性applyName的setter方法
	 */
	public void setApplyName(java.lang.String applyName) {
		this.applyName = applyName;
	}
	/**
	 * 属性managerId的getter方法
	 */
	public java.lang.String getManagerId() {
		return managerId;
	}

	/**
	 * 属性managerId的setter方法
	 */
	public void setManagerId(java.lang.String managerId) {
		this.managerId = managerId;
	}

	/**
	 * 属性managerName的getter方法
	 */
	public java.lang.String getManagerName() {
		return managerName;
	}

	/**
	 * 属性managerName的setter方法
	 */
	public void setManagerName(java.lang.String managerName) {
		this.managerName = managerName;
	}
	/**
	 * 属性hrId的getter方法
	 */
	public java.lang.String getHrId() {
		return hrId;
	}

	/**
	 * 属性hrId的setter方法
	 */
	public void setHrId(java.lang.String hrId) {
		this.hrId = hrId;
	}

	/**
	 * 属性hrName的getter方法
	 */
	public java.lang.String getHrName() {
		return hrName;
	}

	/**
	 * 属性hrName的setter方法
	 */
	public void setHrName(java.lang.String hrName) {
		this.hrName = hrName;
	}
	/**
	 * 属性ceoId的getter方法
	 */
	public java.lang.String getCeoId() {
		return ceoId;
	}

	/**
	 * 属性ceoId的setter方法
	 */
	public void setCeoId(java.lang.String ceoId) {
		this.ceoId = ceoId;
	}

	/**
	 * 属性ceoName的getter方法
	 */
	public java.lang.String getCeoName() {
		return ceoName;
	}

	/**
	 * 属性ceoName的setter方法
	 */
	public void setCeoName(java.lang.String ceoName) {
		this.ceoName = ceoName;
	}

	/**
	 * 将当前对象转化为po
	 * @return
	 */
	public QfLeave createPO() {
		QfLeave po = new QfLeave();
			// 设置PO主键id
					if (WoUtil.isEmpty(this.id)) {
				po.setId(java.util.UUID.randomUUID().toString());
			} else {
				po.setId(this.id);
			}
						// 设置PO属性applyReason
				po.setApplyReason(this.applyReason);
					// 设置PO属性applyHours
				po.setApplyHours(this.applyHours);
					// 设置PO属性applyType
				po.setApplyType(this.applyType);
					// 设置PO属性managerResult
				po.setManagerResult(this.managerResult);
					// 设置PO属性managerRemark
				po.setManagerRemark(this.managerRemark);
					// 设置PO属性hrResult
				po.setHrResult(this.hrResult);
					// 设置PO属性hrRemark
				po.setHrRemark(this.hrRemark);
					// 设置PO属性ceoResult
				po.setCeoResult(this.ceoResult);
					// 设置PO属性ceoRemark
				po.setCeoRemark(this.ceoRemark);
					// 设置PO属性status
				po.setStatus(this.status);
				
				// 设置关系数据
		Staff apply = new Staff();
		if (!WoUtil.isEmpty(applyId)) {
			apply.setId(this.applyId);
			po.setApply(apply);
		}
			// 设置关系数据
		Staff manager = new Staff();
		if (!WoUtil.isEmpty(managerId)) {
			manager.setId(this.managerId);
			po.setManager(manager);
		}
			// 设置关系数据
		Staff hr = new Staff();
		if (!WoUtil.isEmpty(hrId)) {
			hr.setId(this.hrId);
			po.setHr(hr);
		}
			// 设置关系数据
		Staff ceo = new Staff();
		if (!WoUtil.isEmpty(ceoId)) {
			ceo.setId(this.ceoId);
			po.setCeo(ceo);
		}
			return po;
	}

	/**
	 * @param po
	 */
	public void updatePO(QfLeave po) {
			// 设置PO属性applyReason
		po.setApplyReason(this.applyReason);
			// 设置PO属性applyHours
		po.setApplyHours(this.applyHours);
			// 设置PO属性applyType
		po.setApplyType(this.applyType);
			// 设置PO属性managerResult
		po.setManagerResult(this.managerResult);
			// 设置PO属性managerRemark
		po.setManagerRemark(this.managerRemark);
			// 设置PO属性hrResult
		po.setHrResult(this.hrResult);
			// 设置PO属性hrRemark
		po.setHrRemark(this.hrRemark);
			// 设置PO属性ceoResult
		po.setCeoResult(this.ceoResult);
			// 设置PO属性ceoRemark
		po.setCeoRemark(this.ceoRemark);
			// 设置PO属性status
		po.setStatus(this.status);
		
				// 设置PO的apply属性值:M21
		if (!WoUtil.isEmpty(applyId)) {
			Staff apply = new Staff();
			apply.setId(this.applyId);
			po.setApply(apply);
		} else {
			po.setApply(null);
		}
			// 设置PO的manager属性值:M21
		if (!WoUtil.isEmpty(managerId)) {
			Staff manager = new Staff();
			manager.setId(this.managerId);
			po.setManager(manager);
		} else {
			po.setManager(null);
		}
			// 设置PO的hr属性值:M21
		if (!WoUtil.isEmpty(hrId)) {
			Staff hr = new Staff();
			hr.setId(this.hrId);
			po.setHr(hr);
		} else {
			po.setHr(null);
		}
			// 设置PO的ceo属性值:M21
		if (!WoUtil.isEmpty(ceoId)) {
			Staff ceo = new Staff();
			ceo.setId(this.ceoId);
			po.setCeo(ceo);
		} else {
			po.setCeo(null);
		}
		}
}
